package com.cloud.system.api.provider;

import com.cloud.system.api.bean.UnitCriteriaBean;
import org.apache.commons.lang.StringUtils;
import org.apache.ibatis.jdbc.SQL;


public class UnitPageProvider {
    private static final String LIST_PAGE_SELECT = " t2.*",
            LIST_PAGE_FOMR = " unit_info t2 ";

    public String listPage(UnitCriteriaBean bean) {
        SQL sql = new SQL().SELECT(LIST_PAGE_SELECT).FROM(LIST_PAGE_FOMR);

        sql.WHERE("t2.unit_type_id >0");

        sql.WHERE("t2.delete_flag!=1");
        if (StringUtils.isNotEmpty(bean.getKeyWord())) {
            bean.setKeyWord("%" + bean.getKeyWord() + "%");
            sql.WHERE("t2.unit_name like #{keyWord}");
        }
        //区域权限过滤
        if (StringUtils.isNotEmpty(bean.getRegionCode())) {
            bean.setRegionCode(bean.getRegionCode() + "%");
            sql.WHERE("t2.region_code like '" + bean.getRegionCode() + "'");
        }
        if (StringUtils.isNotEmpty(bean.getManubriumFlag())) {
            if (bean.getManubriumFlag().equals("01")) {
                sql.WHERE("t2.manubrium_flag = 1");
            } else {
                sql.WHERE("(t2.manubrium_flag =0)");
            }
        }

        if (StringUtils.isNotEmpty(bean.getConfirmFlag())) {
            if (bean.getConfirmFlag().equals("01")) {
                sql.WHERE("t2.is_confirm = 1");
            } else {
                sql.WHERE("(t2.is_confirm =0)");
            }
        }
        if (bean.getUnitNatureId() != null) {
            sql.WHERE("t2.unit_nature_id = #{unitNatureId}");
        }

        if (bean.getUnitTypeId() != null) {
            sql.WHERE("t2.unit_type_id = #{unitTypeId}");
        }

        if (bean.getUnitLevel() != null) {
            sql.WHERE("t2.unit_level = #{unitLevel}");
        }

        if (StringUtils.isNotEmpty(bean.getRegionName())) {
            sql.WHERE("t2.region_code in (select region_code from unit_info where unit_name = '" + bean.getRegionName() + "')");
        }
        if (bean.getUnitCode() != null) {
            sql.WHERE("t2.unit_code like  '" + bean.getUnitCode() + "%" + "'");
        }
        return sql.toString();
    }

    public String unitInfoListPage(UnitCriteriaBean bean) {
        SQL sql = new SQL().SELECT(LIST_PAGE_SELECT).FROM(LIST_PAGE_FOMR);

        sql.WHERE("t2.subject_id =" + bean.getUnitId());

        if (StringUtils.isNotEmpty(bean.getUnitName())) {
            sql.WHERE("t2.unit_name like '%" + bean.getUnitName() + "%' ");
        }

        return sql.toString();
    }
}
